<script setup lang="ts">

// 一、isRef 用来判断一个值是否是 ref 对象，即是否是响应式的。如果一个值是 ref 对象，则 isRef 方法会返回 true。
// 二、isReactive 用来判断一个对象是否是响应式的。如果一个对象是响应式对象，则 isReactive 方法会返回 true
// 三、isReadonly 方法用来判断一个对象是否是只读的。如果一个对象是只读的，则 isReadonly 方法会返回 true。
// 1.1 isRef
// 2.1 isReactive
import { isReactive, isReadonly, isRef, reactive, readonly, ref } from 'vue'

const myRef1 = ref(10)
console.log(isRef(myRef1)) // 输出 true

const normalValue1 = 20
console.log(isRef(normalValue1)) // 输出 false

const myRef2 = ref(10)
console.log(isRef(myRef2)) // 输出 true

const normalValue2 = 20
console.log(isRef(normalValue2)) // 输出 false

const myReactiveObj = reactive({ count: 0 })
console.log(isReactive(myReactiveObj)) // 输出 true

const plainObj1 = { count: 0 }
console.log(isReactive(plainObj1)) // 输出 false
// 3.1 isReadonly
const myReadonlyObj = readonly({ count: 0 })
console.log(isReadonly(myReadonlyObj)) // 输出 true

const plainObj2 = { count: 0 }
console.log(isReadonly(plainObj2)) // 输出 false

</script>

<template>
  <h1>该组件用于 演示 响应式数据的判断</h1>
  <p>打开控制台即可</p>
</template>

<style scoped>

</style>
